没有lrzsz,怎么传文件到服务器?
文件传输是日常运维中最常见的操作,在linux系统和win/mac系统之间传输文件,我们最常用的,应该是lrzsz工具,通过rz(上传)/sz(下载),对于平常的小文件传输实在是太方便了
如果要传输大的文件,我们通常会选择winscp工具,通过ssh隧道进行传输
那么除了以上这些方法,或在没有这些工具的条件下,我们如何简单方便的进行文件传输呢?
下面介绍几个方法
python
python中自带一个轻量级web服务器,在python2中是模块SimpleHTTPServer,在python3中合并到http.server中
如图会在当前目录下启动一个默认8000端口的web服务,我们就可以通过浏览器直接访问该web服务,进行文件下载
当然在本地通过该方式启动web服务之后,在服务器上通过wget或curl等访问可以实现变相上传文件
小技巧:通常从运营商购买的服务器的带宽,是只限制出带宽而入带宽一般会比出带宽限制高或者不限制,这个时候,如果我们上传文件慢的话,我们可以改用从服务器下载的方式,而且服务器一般出端口不限制
Nginx/Apache
上面python的轻量web服务器,虽然很方便,但是很多时候,服务器都会设置防火墙、安全组等,不常用的端口通常不会开放,这个时候,就可以直接用web服务器了,常见的比如Nginx、Apache、IIS、Tomcat等,都可以
我们指定,web访问,就是从服务器下载资源之后,渲染到浏览器的,通过MIME类型进行识别文件,加载渲染,所以,我们利用web服务器
将需要下载的文件放到web服务器指定的目录下,然后我们通过服务器ip或已配置的域名,通过浏览器访问该文件,即可下载,如果文件MIME类型被识别,我们可以将文件命名为不可识别的,这样就会直接下载,下载后我们再将后缀改回去即可
这样,通常80、443端口肯定是默认开放的,所以不会被防火墙拦截,这里就顺便提一下,打包的备份文件不管是压缩包,还是sql,千万别放web目录下,小心被直接打包下载
同样,上传我们也可以在本地起这样的web服务,然后在服务器上进行下载操作
scp
scp命令通常我们使用是在两台服务器之间通过ssh进行文件传输,很少人知道,scp其实也可以在windows和linux之间进行文件传输,scp命令格式不介绍了,直接看从windows传输到linux的演示
查看linux下
在windows下面使用scp的前提是,windows要装有ssh类工具,现在win10自带openssh,基本不需要安装,如果是旧系统,直接升级吧
nc
说到端口监听,除了web服务,nc这个常用的网络瑞士军刀,必然可以做到
通常用nc,要么是做网络测试,要么是做反弹shell,而nc有个输入输出指令的操作,比如nc -l 9999 > file,就是监听9999端口,把传过来的数据都写入到file
而另一端呢,只需要通过nc命令,将需要传输的文件写入即可,比如nc ip 9999 < file
这样file文件就会通过nc监听的端口传输过去,并写入到文件,也算是实现了文件传输
除了以上命令,你还知道什么简单又方便的文件传输方式,欢迎留言
运维技术交流群
「运维研习社」建立了运维技术交流群,大家可以添加小编微信进行加群。欢迎有想法、乐于分享的朋友们一起进群交流学习。
扫描添加好友邀您进运维交流群